﻿#ifndef FILE_PROCESS_H
#define FILE_PROCESS_H

/*****************************************************************************************
  @Copyright  2020-2021
  @Date       2021-05-23
  @Author     qiaowei
  @Contact    weiweiqiao@126.com
  @Version    1.0
  @Brief      处理文件内容
  @Other      None
  @History
      @Date   20210525
      @Author qiaowei
      @Brief  添加get_track_data函数，从QString参数中读取数据，将数据保存到Track_data*变量中并返回
              添加si_send_track_to_model信号函数
              添加sl_open_files_to_show槽函数，根据字符串列表中的文件名files，依次打开文件，读取文
                件内容
              添加sl_split_data_to_files槽函数，根据字符串列表中的文件名files，依次打开文件，读取文
                件内容，分类保存到不同文件中
  @Functions  None
******************************************************************************************/

#include <QObject>
class Track_data;

class File_process : public QObject
{
    Q_OBJECT

public:
    explicit File_process(QObject *parent = nullptr);
    ~File_process();

public slots:
    void sl_open_files_to_show(QStringList files);

    /***************************************************************************
     @Date     2021-05-25
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    将数据根据标志位保存到不同文件中
    ***************************************************************************/
    void sl_split_data_to_files(QStringList files_name);

signals:
    /***************************************************************************
     @Date     2021-05-25
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    Send track data to Model
    ***************************************************************************/
    void si_send_track_to_model(Track_data* data);

    void si_quit_sub_thread(int index);

private:
    /***************************************************************************
     @Date     2021-05-25
     @Author   qiaowei
     @Contact  weiweiqiao@126.com
     @Version  1.0
     @Brief    Split content as key/value and save key/value in Track_data_02
               variable
     @Param    row 数据在文件中所在行数，也就是数据的编号
     @Param    content 第row行数据内容
     @Return   处理好，保存在Track_data*中的数据
    ***************************************************************************/
    Track_data* get_track_data(int row, QString content);
};

#endif // FILE_PROCESS_H
